package com.ce.pms.common.service;

import java.util.List;

import com.ce.pms.base.service.IPmsBaseService;
import com.ce.pms.common.model.HmDeptDomain;
import com.ce.pms.common.model.HmEmployeeDomain;
import com.ce.pms.common.vo.HmDeptVO;
import com.ce.pms.common.vo.OrganizationalStructureVO;
import com.sitechasia.webx.core.support.Page;

/**
 * 功能描述: IOrganizationalStructureService 组织架构业务处理类的接口
 * <p>版权所有：中企动力
 * <p>未经本公司许可，不得以任何方式复制或使用本程序任何部分
 *
 * @author  许心炜
 * Created on：  2008-10-7
 * @author  许心炜
 * update on：   2008-10-29
 */
public interface IOrganizationalStructureService extends IPmsBaseService{

	/**
	 * 功能描述:  查询员工信息列表
	 * @param organizationalStructureVO
	 * @return
	 * Create author:许心炜
	 * Create on:2008-10-7
	 */
	public Page queryOutUserInfo(OrganizationalStructureVO organizationalStructureVO);

	/**
	 * 功能描述:  根据userCode查询员工信息
	 * @param userCode
	 * @return
	 * Create author:许心炜
	 * Create on:2008-10-29
	 */
	public OrganizationalStructureVO queryUserByUserCode(String userCode);

	/**
	 * 功能描述: 根据部门ID查询部门名字 <br>
	 * @param deptId
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-12-22  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public String getDeptNameById(Long deptId);

	/**
	 * 功能描述: 根据部门ID查询部门实体 <br>
	 * @param deptId
	 * @return
	 *
	 * Create author:付湘辉 <br>
	 * Create on:2008-12-22  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public HmDeptDomain getHmDeptDomainById(Long deptId);
	/**
	 * 功能描述:通过员工ID获取员工domain<br>
	 * @param employeeId
	 * @return
	 * Create author:yixianjian <br>
	 * Create on:2009-1-8  <br>
	 */
	public HmEmployeeDomain getHmEmployeeDomainById(Long employeeId);

	/**
	 * 功能描述:  根据userID查询部门信息
	 * @param userCode
	 * @return HmDeptVO
	 * Create author:许心炜
	 * Create on:2008-12-23
	 */
	public HmDeptVO queryDeptInfoByUseID(Long userID);

	/**
	 * 功能描述:  根据userID查询员工信息<br>
	 * @param userID
	 * @return OrganizationalStructureVO
	 * Create author:许心炜 <br>
	 * Create on:2008-12-24  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
	public OrganizationalStructureVO queryUserByUserId(Long userID);



	/**
	 * 功能描述:获得所有部门员工的信息<br>
	 * @param <br>
	 * @return<br>
	 *
	 * Create author:xuhaidui<br>
	 * Create on:2008-12-30<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
	public List<OrganizationalStructureVO> getAllPerson();

	/**
	 * 功能描述:获得所有部门的信息<br>
	 * @param <br>
	 * @return<br>
	 *
	 * Create author:xuhaidui<br>
	 * Create on:2008-12-30<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
	public List<HmDeptVO> getAllDept();


	/**
	 * 功能描述:获得所选部门的信息<br>
	 * @param <br>
	 * @return<br>
	 *
	 * Create author:xuhaidui<br>
	 * Create on:2008-12-30<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
	public List<HmDeptVO> getSelectDeptList(String deptIdStr);
}
